package foundation.chip_test;

import java.util.Scanner;

/**
 * 有n（2≤n≤20）块芯片，有好有坏，已知好芯片比坏芯片多。
 * 每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时，能正确给出被测试芯片是好还是坏。
 * 而用坏芯片测试其他芯片时，会随机给出好或是坏的测试结果（即此结果与被测试芯片实际的好坏无关）。
 * 给出所有芯片的测试结果，问哪些芯片是好芯片。
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int res = 0; // 用来记录好芯片的个数
        int[][] nums = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                nums[i][j] = sc.nextInt();
            }
        }
        // 首先要确定出来一个好的，用来验证其他的好的
        int good = 0; // 记录找到的第一个好的
        for (int i = 0; i < n; i++) { // 列
            int tmp = 0; // 记录i个芯片是好芯片的次数
            for (int j = 0; j < n; j++) { // 行
                // 遍历第i个芯片被其他所有芯片测试的结果
                if (i == j) {
                    continue;
                }
                if (nums[j][i] == 1) {
                    tmp ++;
                }
            }
            // 好芯片比坏芯片多
            // 如果该芯片被证明是好芯片的次数大于芯片数的一半（取下限，表示当前是奇数，最坏的情况是好芯片只比坏芯片多一个）时则该芯片是好芯片
            if (tmp > n / 2) {
                good = i;
                break;
            }
        }
        // 遍历第good行得出所有好芯片的编号
        for (int i = 0; i < n; i++) {
            if (nums[good][i] == 1) { // 要注意带上这个好芯片！
                System.out.print(i + 1 + " ");
            }
        }
    }
}
